package com.abou.security.auth;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.security.core.Authentication;
import org.springframework.security.web.authentication.logout.LogoutSuccessHandler;
import com.abou.mvc.controller.ControllerUtils;
import com.abou.mvc.controller.admin.LoginController;

/**
 * Strategy used to handle a successful user logout
 * 
 * @author khalid
 */
public class AbouLogoutSuccessHandler implements LogoutSuccessHandler {
  
  /**
   * The default constructor
   */
  public AbouLogoutSuccessHandler() {

    super();
  }
  
  /**
   * @see org.springframework.security.web.authentication.logout.LogoutSuccessHandler#onLogoutSuccess(javax.servlet.http.HttpServletRequest,
   *      javax.servlet.http.HttpServletResponse,
   *      org.springframework.security.core.Authentication)
   */
  public void onLogoutSuccess(HttpServletRequest request,
      HttpServletResponse response, Authentication auth) throws IOException,
      ServletException {

    // redirecting
    String url =
        request.getContextPath() + ControllerUtils.VIEW_PATH_SEP
            + LoginController.LOGIN_VIEW + ControllerUtils.VIEW_NAME_SUFFIX;
    
    response.sendRedirect(response.encodeRedirectURL(url));
  }
}
